<?php
namespace core\lib;

class database
{
	private $db;
	/**
	 *
	 *	构造函数：载入数据库配置文件
	 *
	 */
	public function __construct(){
		$config = config::all('database');
		$class = '\\core\\lib\\driver\\database\\' . $config['dbtype'];
		$this->db = new $class($config['host'], $config['username'], $config['password'], $config['dbname'], $config['port']);
		
		$this->connect_error();
	}
	/**
	 * 
	 *	查询数据成功，返回结果集二维Array(关联数组)，每一行代表一个记录
	 * 	否则返回False
	 *
	 * @return	false Or Array
	 */
	public function query($sql){
		$ok = $this->db->query($sql);
		$this->error();
		return $ok;
	}
	/**
	 * 
	 *	更新数据成功，返回True
	 * 	否则返回False
	 *
	 * @return	Boolean
	 */
	public function update($sql){
		$ok = $this->db->update($sql);
		$this->error();
		return $ok;
	}
	
	/**
	 *	返回插入成功数据的id
	 */
	public function insert_id(){
		return $this->db->insert_id();
	}
	/**
	 * 
	 *	如果连接数据库成功，则返回false
	 * 	否则，返回错误信息
	 *
	 * @return	false or String
	 */
	public function connect_error(){
		$message = $this->db->connect_error();
		if(! $message)
			$message = 'Connect Database Success!';
			
		logs::write($message, 'database');
		return $message;
	}
	
	/**
	 * 
	 *	如果执行SQL代码成功，则返回false
	 * 	否则，返回错误信息
	 *
	 * @return	false or String
	 */
	public function error(){
		if(!$this->db->error())
			return false;
		
		$message = $this->db->error();
		logs::write($message, 'database');
		return $message;	
	}
}